package com.humanresource.service.clerkrecord;

import java.util.List;

import com.humanresource.domain.po.clerkrecord.Clerkbaseinfo;
import com.humanresource.domain.po.clerkrecord.Clerkinstpos;
import com.humanresource.domain.po.clerkrecord.Clerkrecords;
import com.humanresource.domain.po.clerksalary.Clerkrewardpunishstandard;

public interface ClerkBaseInfoService {

	/**
	 * 添加职工基本信息
	 * @param clerkbaseinfo
	 */
	public void insert(Clerkbaseinfo clerkbaseinfo);

	/**
	 * 根据员工编号查找员工基本信息
	 * @param ClerkId
	 * @return
	 */
	public Clerkbaseinfo findById(Integer ClerkId);

	/**
	 * 根据职工姓名查找职工基本信息
	 * @param name
	 * @return
	 */
	public Clerkbaseinfo findByName(String name);

	/**
	 * 为职工添加机构单位和职位
	 * @param clerkinstpos
	 */
	public void addPosToClerk(Clerkinstpos clerkinstpos);

	/**
	 * 根据职工编号查找职工所属机构以及职位
	 * @param ClerkId
	 * @return
	 */
	public Clerkinstpos findByClerkId(Integer ClerkId);

	/**
	 * 根据员工编号修改员工信息
	 * @param clerkbaseinfo
	 */
	public void update(Clerkbaseinfo clerkbaseinfo);

	/**
	 * 通过3级机构名和2级职位名称查找所有clerkinstpos
	 * @param thirdinstname
	 * @param posname
	 * @return
	 */
	public List<Clerkinstpos> findBy3instname2posname(String thirdinstname,
			String posname);

	/**
	 * 通过3级机构名和2级职位名称和建档时间查找所有的职工档案信息记录
	 * @param thirdinstname
	 * @param posname
	 * @param starttime
	 * @param endtime
	 * @return
	 */
	public List<Clerkrecords> findBy3instname2posnameandcretetime(
			String thirdinstname, String posname, String starttime,
			String endtime);

	/**
	 * 根据姓名进行模糊查询
	 * @param clerkname
	 * @return
	 */
	public List<Clerkbaseinfo> clerknameLike(String clerkname);

	/**
	 * 按照就够id查询该机构下的所有员工以及每个员工的职位
	 * @param instid
	 * @return
	 */
	public List<Clerkinstpos> findByInstId(Integer instid);

	/**
	 * 设置员工的奖惩情况
	 * @param clerkrewardpunishstandard
	 */
	public void setClerkrewardpunishstandard(
			Clerkrewardpunishstandard clerkrewardpunishstandard);

	/**
	 * 根据登录用户名和登录密码返回该用户
	 * @param clerkname
	 * @param clerkpassword
	 * @return
	 */
	public Clerkbaseinfo login(String clerkname, String clerkpassword);
}
